home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 147 / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin / fdimg / oh!.2hd / OH!DEN_B.LZH / TOOLS / CDC / CDCSXSRC.LZH / YOU200.MAC < prev   
Text File  |  1995-03-20  |  4KB  |  256 lines

  1. *━━━□                        □━━━*
  2. *
  3. *          マクロ定義ファイル  V2.00
  4. *
  5. *      (C)You Utzse/電脳魔術団/Mankaiseisakujo/1995
  6. *━━━□                        □━━━*
  7. .nlist
  8.  
  9.  
  10. SXCALL        macro    num,cnt        *[SXコール呼び出しマクロ]
  11.         dc.w    num
  12. .if        cnt<9
  13.         .if    cnt<>0
  14.             addq.l    #cnt,sp
  15.         .endif
  16. .else
  17.         lea.l    cnt(sp),sp
  18. .endif
  19.         .endm
  20.  
  21. SX        macro    num,cnt        *[SXコール呼び出しマクロ]
  22.         dc.w    num
  23. .if        cnt<9
  24.         .if    cnt<>0
  25.             addq.l    #cnt,sp
  26.         .endif
  27. .else
  28.         lea.l    cnt(sp),sp
  29. .endif
  30.         .endm
  31.  
  32. SXSUB        macro    num,cnt        *[サブルーチン呼び出しマクロ]
  33.         jbsr    num
  34. .if        cnt<9
  35.         .if    cnt<>0
  36.             addq.l    #cnt,sp
  37.         .endif
  38. .else
  39.         lea    cnt(sp),sp
  40. .endif
  41.         .endm
  42.  
  43. OPMSET    macro    callname,rg2,rg3,rg4,rg5
  44.     movem.l    d2-d3/a1-a2,-(sp)
  45.     move.l    #rg2,d2
  46.     move.l    #rg3,d3
  47.     lea.l    rg4,a1
  48.     lea.l    rg5,a2
  49.     moveq.l    #callname,d1
  50.     moveq.l    #$f0,d0
  51.     trap    #15
  52.     movem.l    (sp)+,d2-d3/a1-a2
  53. .endm
  54.  
  55. ZMSSET    macro    callname,rg2,rg3,rg4,rg5
  56.     movem.l    d2-d3/a1-a2,-(sp)
  57.     move.l    #rg2,d2
  58.     move.l    #rg3,d3
  59.     lea.l    rg4,a1
  60.     lea.l    rg5,a2
  61.     moveq.l    #callname,d1
  62.         trap    #3
  63.     movem.l    (sp)+,d2-d3/a1-a2
  64. .endm
  65.  
  66. LASCIIS        .macro    string        *[LASCII文字列作成マクロ]
  67.         .local    startStr,endStr                *for HAS
  68.     .ifdef    AS2
  69.     .fail -1
  70.     .endif
  71.         dc.b    endStr-startStr
  72. startStr:    dc.b    string
  73. endStr:
  74.     .even
  75.     .endm
  76.  
  77. LASCIIZ        .macro    string
  78.         .local    startStr,endStr                *for HAS
  79.     .ifdef    AS2
  80.     .fail -1
  81.     .endif
  82.         dc.b    endStr-startStr
  83. startStr:    dc.b    string
  84. endStr:
  85.         dc.b    0
  86.     .even
  87.     .endm
  88.  
  89.  
  90. SETPORT        macro    winptr
  91.         pea.l    winptr
  92.         SXCALL    __GMSetGraph,4
  93.     .endm
  94.  
  95. SETPORT2    macro    winptr
  96.         move.l    winptr,-(sp)
  97.         SXCALL    __GMSetGraph,4
  98.     .endm
  99.  
  100. SETPORT3    macro    winptr
  101.     .if    WINTYPE='H'
  102.         pea.l    winptr
  103.         SX    __GMSetGraph,4
  104.     .else
  105.         .if    WINTYPE='P'
  106.             move.l    winptr,-(sp)
  107.             SX    __GMSetGraph,4
  108.         .endif
  109.     .endif
  110. .endm
  111.  
  112. Xpea        macro    winptr
  113.     .if    WINTYPE='H'
  114.         pea.l    winptr
  115.     .else
  116.         .if    WINTYPE='P'
  117.             move.l    winptr,-(sp)
  118.         .endif
  119.     .endif
  120. .endm
  121.  
  122. Xlea        macro    winptr,reg
  123.     .if    WINTYPE='H'
  124.         lea.l    winptr,reg
  125.     .else
  126.         .if    WINTYPE='P'
  127.             move.l    winptr,reg
  128.         .endif
  129.     .endif
  130. .endm
  131.  
  132.  
  133.  
  134.  
  135. SETSIZE        macro    winptr
  136.     .ifdef    WINOPT2
  137.         SETPORT3 winptr
  138.         move.w    #WINOPT2,-(SP)
  139.         SXCALL    $A22D,2            *__WMOptionSet
  140.     .endif
  141.     .endm
  142.  
  143. HDL2PTR        macro    sreg,hreg
  144.         move.l    sreg,hreg
  145.         move.l    (hreg),hreg
  146.     .endm
  147. *
  148. *ショートカットキーの処理
  149. *
  150.  
  151. SCUT    macro    ckey,shftk
  152.  
  153.     move.l    eventRec_ShiftBit(a5),d0
  154.     ifne    <and.l    #shftk,d0>
  155.         move.w    #ckey,d0
  156.         cmp.w    eventRec_whom1(a5),d0
  157.     else
  158.         moveq    #-1,d0
  159.     endif
  160. .endm
  161.  
  162.  
  163. ~T    macro
  164.         moveq    #T_RET,d0
  165. .endm
  166. ~F    macro
  167.         moveq    #F_RET,d0
  168. .endm
  169.  
  170. movqw    macro    cnt
  171.         moveq.l    #cnt,d0
  172.         move.w    d0,-(sp)
  173. .endm
  174.  
  175. movql    macro    cnt
  176.         pea.l    cnt.w
  177. .endm
  178.  
  179.  
  180.  
  181. *━━━□     モジュールタイプ                □━━━*
  182.  
  183. OBJECT        equ    'OBJ'<<8    * 実行形式のプログラム
  184. OBJECTR        equ    'OBJR'        * 再入可能プログラム
  185. OBJECTC        equ    'OBJC'        * 再入できないプログラム
  186. OBJECTO        equ    'OBJO'        * 同時に複数実行できないプログラム
  187.  
  188.     .text
  189. *━━━□     レクタングルレコード            □━━━*
  190.  
  191. .offset    0
  192. Left    ds.w    1        *0
  193. Top    ds.w    1        *2
  194. Right    ds.w    1        *4
  195. Bottom    ds.w    1        *6
  196. .text
  197.  
  198. *━━━□     ウィンドウオプション            □━━━*
  199.  
  200. WO_NON        equ    %0000
  201. WO_SCRBAR    equ    %0001            *スクロールバーあり
  202. WO_CLIP        equ    %0010            *クリップあり
  203. WO_DRV        equ    %0100            *ドライブ表示あり
  204. WO_SIZE_B    equ    %1000            *サイズボタン表示可
  205. WO_SIZE_B2    equ    %100000000        *サイズボタン表示する
  206. WO_ALLOW    equ    %1000000000        *矢印あり
  207.  
  208. WO_CLIPON    equ    %1000000000000000    *クリップのオンオフ
  209.  
  210.     .text
  211. *━━━□     ユーザーシンボル                □━━━*
  212.  
  213. *ファイルモード
  214.  
  215. ROPEN        equ    0    *読み込み用
  216. WOPEN        equ    1    *書き出し用
  217. RWOPEN        equ    2    *読み書き両用
  218.  
  219. *ASCII CODE
  220.  
  221. CR        equ    $0D
  222. LF        equ    $0A
  223. TAB        equ    $09
  224. SPACE        equ    $20
  225.  
  226. N_menu        equ    $0    *ノーマルメニュー
  227. T_menu        equ    $1    *タイトル付メニュー
  228.  
  229. YELLOW_F    equ    1    *黄旗用
  230.  
  231. *OPT1KB        equ    2    *OPT.1キービットチェック
  232. *EH_OPT1    equ    2    *OPT.1キービットチェック
  233.  
  234. T_RET        equ    0    *正常リターン値
  235. F_RET        equ    -1    *エラーリターン値
  236.  
  237. ASC_Z        equ    -1
  238. L_ASC        equ    0
  239.  
  240.  
  241. CBOX_ON        equ    -1
  242. CBOX_OFF    equ    0
  243.  
  244. TRUE        equ    -1
  245. FALSE        equ    0
  246.  
  247. MNuInact    equ    0
  248. MNuAct        equ    1
  249.  
  250. SW_CHK        equ    0
  251. SW_SAVE        equ    1
  252. SW_EXCHG    equ    2
  253.  
  254.  
  255. .list
  256.